Các bác giải thích hộ em hàm này phát , em ngẫm mãi mà không thấm :
em chưa hiểu cách ghi và đọc ntn , bác nào rảnh review hộ em cái
hàm ghi :
hàm đọc :
em chưa hiểu cách ghi và đọc ntn , bác nào rảnh review hộ em cái
hàm ghi :
unsigned char I2C_write(unsigned char dat)//ham ghi 1 byte du lieu vao DS1307
{
unsigned char i;
for (i=0;i<8;i++)
{
SDA = (dat & 0x80); ///? 1:0; // Chỗ này có phải để lấy bit thứ 7 k ạ , em chưa hiểu lắm
SCL=1;
SCL=0;
dat<<=1;
}
SCL = 1;
SCL = 0;
return dat;
}
{
unsigned char i;
for (i=0;i<8;i++)
{
SDA = (dat & 0x80); ///? 1:0; // Chỗ này có phải để lấy bit thứ 7 k ạ , em chưa hiểu lắm
SCL=1;
SCL=0;
dat<<=1;
}
SCL = 1;
SCL = 0;
return dat;
}
unsigned char I2C_read(void)
{
bit rd_bit;
unsigned char i, dat;
dat = 0x00;
for(i=0;i<8;i++) /* For loop read data 1 byte */
{
SCL = 1;
rd_bit = SDA; /* Keep for check acknowledge */
dat = dat<<1;
dat = dat | rd_bit; /* Keep bit data in dat */
SCL = 0; /* Clear SCL */
}
return dat;
}
{
bit rd_bit;
unsigned char i, dat;
dat = 0x00;
for(i=0;i<8;i++) /* For loop read data 1 byte */
{
SCL = 1;
rd_bit = SDA; /* Keep for check acknowledge */
dat = dat<<1;
dat = dat | rd_bit; /* Keep bit data in dat */
SCL = 0; /* Clear SCL */
}
return dat;
}
Comment